# frozen_string_literal: true

class TileTracepoints < ActiveRecord::Migration[4.2]
  class Tracepoint < ApplicationRecord
    self.table_name = "gps_points"
  end

  def self.up
    add_column "gps_points", "tile", :bigint
    add_index "gps_points", ["tile"], :name => "points_tile_idx"
    remove_index "gps_points", :name => "points_idx"

    Tracepoint.all.each do |tp|
      tp.latitude = tp.latitude * 10
      tp.longitude = tp.longitude * 10
      tp.save!
    end
  end

  def self.down
    Tracepoint.update_all("latitude = latitude / 10, longitude = longitude / 10")

    add_index "gps_points", %w[latitude longitude], :name => "points_idx"
    remove_index "gps_points", :name => "points_tile_idx"
    remove_column "gps_points", "tile"
  end
end
